import { reactive } from 'vue'

export default function itemSelect() {
  // 用于保存选中的算法名字的列表
  const algorithm_Items = reactive([])
  // 用于保存选中的问题名字的列表
  const problem_Items = reactive([])
  // 将点击的算法或者问题进行添加，
  const addItem = (item, items) => {
    requestIdleCallback(idle=>{
      if(idle.timeRemaining()>0){
        if (!items.includes(item)) {
          items.push(item)
        }
      }else {
        addItem(item,items)
      }
    })
  }
  // 删除已经选择的算法或者问题
  const removeBtn = (arr, index) => {
    arr.splice(index, 1)
  }
  // 用于控制选中算法或者问题下移动
  const moveOneIndex = (arr, index, num) => {
    if (num < 0 && index < 1 || num > 0 && index >= arr.length - 1) {
      return
    }
    const elementToMove = arr.splice(index, 1)[0] // 移除要移动的元素，并获取它
    arr.splice(index + num, 0, elementToMove) // 将元素插入到后一个位置
  }
  return {
    algorithm_Items, problem_Items, addItem, removeBtn, moveOneIndex
  }
}
